Learning Android by Marko Gargenta & Masumi Nakamura

Learning Android by Marko Gargenta & Masumi Nakamura

Author:Marko Gargenta & Masumi Nakamura
Language: eng
Format: epub
Tags: COMPUTERS / Programming Languages / Java
ISBN: 9781449336240
Publisher: O’Reilly Media
Published: 2014-01-09T05:00:00+00:00


This is why, in our example, we inflated the layout in onCreateView() so that when the activity is created, the view is created accordingly.

Figure 8-1. Activity and fragment life cycle

Dynamically Adding Fragments

In Example 8-5, we have added our status fragment to the activity by creating an XML layout file that our activity inflated, at which time the fragment was also loaded and created. Because initialization of the fragment happens in an XML file, this is called static initialization. At a closer look, you may notice that most of the XML file itself is almost just noise—it’s there just to define that we need to load a fragment.

As you know from before, XML ultimately always becomes Java, so everything that can be done statically can also be done dynamically. Sometimes one approach is cleaner than others. Just for comparison purposes, let’s refactor our code to attach status fragment to status activity dynamically.

Our status activity can now be seen in Example 8-6, which shows how to load a fragment dynamically (in other words, without the need for an XML file).

Example 8-6. StatusActivity, refactored

package com.marakana.android.yamba; import android.os.Bundle; public class StatusActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Check if this activity was created before if (savedInstanceState == null) { // // Create a fragment StatusFragment fragment = new StatusFragment(); // getFragmentManager() .beginTransaction() .add(android.R.id.content, fragment, fragment.getClass().getSimpleName()) .commit(); // } } }



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.